接下來我們需要將物品註冊到事件巴士 Event Bus中,這樣我們才可以在遊戲開始時將我們的物品載入遊戲,在程式設計中,Event Bus可以拿來註冊事件監聽器,再發生某些特定事件的時候執行相對應的程式碼。在遊戲內Event Bus也是如此,但是又有些不同,他多出了一些功能,比如註冊物品和其他東西。
在Forge原本的程式碼中,註冊物品的程式碼為
ITEMS.register(eventBus)
由於我們的物品註冊命名為ModItems,我們需要一個新方法來註冊,在我找到的教學中使用了下面的程式碼。
public static void register(IEventBus eventBus){
ITEMS.register(eventBus);
}
我們先在ModItems中加入這段程式碼,這樣我們就可以自由呼叫物品註冊
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
在Forge原先的程式碼中有這麼一段名為modEventBus的變數,這段程式碼建立了一個Event Bus的物件,它負責管理和處理與 Minecraft 模組相關的事件。這個Event Bus是基於 Forge 模組開發框架的一部分。 modEventBus可以註冊模組的事件監聽器,以便在遊戲中處理自訂的邏輯和功能。Mod Eventbus在 Forge 模組開發中扮演著重要的角色,用於與遊戲事件系統互動。
題外話,在Forge官方論壇中有說,想要將東西註冊到 mod特定Event Bus,必須使用上面的FMLJavaModLoadingContext,他還特地留空標註 你 必 需 用 這 個 。